<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <div id="app">
    <my-content></my-content>
    <my-footer></my-footer>
  </div>
</body>
<template id="content">
  <div>
    {{ content }}
  </div>
</template>
<template id="footer">
  <ul>
    <li @click="sendData('首页')">首页</li>
    <li @click="sendData('分类')">分类</li>
    <li @click="sendData('购物车')">购物车</li>
    <li @click="sendData('我的')">我的</li>
  </ul>
</template>
<script src="lib/vue.js"></script>
<script>
  // 1.创建中央事件总线
  const bus = new Vue()
  const Content = {
    template: '#content',
    data () {
      return {
        content: '首页'
      }
    },
    mounted () {
      // 2.在需要接受数据的某一个事件内部，监听数据
      // 监听了一个自定义的事件，回调函数的参数就是需要接收的值
      bus.$on('my-event', (data) => {
        this.content = data
      })
    }
  }
  const Footer = {
    template: '#footer',
    methods: {
      sendData (str) {
        // 3.在需要发送数据的地方，发送数据
        bus.$emit('my-event', str)
      }
    }
  }
  new Vue({
    el: '#app',
    components: {
      'my-content': Content,
      'my-footer': Footer
    }
  })
</script>
</html>